package com.xyy.service;

import com.xyy.common.PageResult;
import com.xyy.dto.PushDTO;
import com.xyy.dto.PushQueryDTO;
import com.xyy.vo.PushVO;

/**
 * 推文服务接口
 */
public interface PushService {

    /**
     * 创建推文
     */
    void createPush(PushDTO pushDTO, Long publisherId);

    /**
     * 更新推文
     */
    void updatePush(PushDTO pushDTO, Long publisherId);

    /**
     * 删除推文
     */
    void deletePush(Long pushId, Long publisherId);

    /**
     * 批量删除推文
     */
    void batchDeletePush(java.util.List<Long> pushIds, Long publisherId);

    /**
     * 发布推文
     */
    void publishPush(Long pushId, Long publisherId);

    /**
     * 撤回推文
     */
    void withdrawPush(Long pushId, Long publisherId);

    /**
     * 分页查询推文
     */
    PageResult<PushVO> pageQuery(PushQueryDTO queryDTO, Integer current, Integer size);

    /**
     * 根据ID查询推文详情
     */
    PushVO getPushById(Long pushId);

    /**
     * 增加浏览次数
     */
    void incrementViewCount(Long pushId);
}
